Skip to content

FAIR implementation on lesson level - #536

Merged
samumantha merged 5 commits into
mainfrom
fair
Aug 10, 2026
Merged

FAIR implementation on lesson level #536
samumantha merged 5 commits into
mainfrom
fair

Conversation

@samumantha

Copy link
Copy Markdown
Member

Adds a machine-readable metadata pipeline for the lesson and a "Reusing" page that surfaces it.

  • metadata.yml (new) — single source of truth for the lesson's citation/schema metadata: title, abstract, authors, version, DOI, license, repo/website URLs, keywords, and the teaches field (learning outcomes lifted from content/index.rst).
  • .github/workflows/generate-metadata.yml + .github/scripts/generate_metadata_files.py (new) — on push to main touching metadata.yml, regenerates CITATION.cff and a new bioschemas.yml from it and commits them back.
  • .github/workflows/zenodo.yml + .github/scripts/publish_to_zenodo.py (new) — on a published GitHub release, creates a new Zenodo version under the lesson's existing concept DOI and publishes it with metadata from metadata.yml.
  • content/reusing.md (new) — citation info (DOI, CITATION.cff pointer), a live-rendered metadata table, and the license section. content/index.rst's "Reusing" toctree entry now points here instead of the generic coderefinery.org/lessons/reusing/ page.
  • content/lesson_metadata.py (new) — Sphinx extension adding a {lesson-metadata} directive that renders metadata.yml as an HTML table (used on the new page).
  • content/conf.py — registered lesson_metadata in extensions and uncommented sys.path.insert(0, os.path.abspath('.')), both required for the new extension to import.

@samumantha
samumantha merged commit 6f276fc into main Aug 10, 2026
5 checks passed
@samumantha
samumantha deleted the fair branch August 10, 2026 19:36
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant